A software module called a “search engine” is often used to search for particular data in a body of data on a computing device. While it is possible to programmatically access and use a search engine, it is preferable to access and use a search engine through a user interface, i.e., a search engine user interface. In the past, most search engine user interfaces have been designed to interface with the kinds of files specific to particular application programs. For example, to find Microsoft® Word files, the search engine user interface in Microsoft Word is used. While the Microsoft Word search engine user interface is easy to learn and use, it is designed to search files specific to Microsoft Word.
An example of a more general purpose search engine user interface is a Web search engine user interface such as the Web search engine user interface included in Microsoft Internet Explorer. Typically, a Web search engine user interface comprises a text box in which searchable terms are entered, a button to launch a search, and an area to display the results of a search. A Web search engine user interface has the advantage of enabling searches of a plurality of different files. Since most users are comfortable with entering searchable terms into a text box, a Web search engine user interface is fairly easy to use for simple searches. If a simple search fails to return useful data or returns too much data, a more complex search is required. Complex searches involve using formal queries to retrieve data. A formal query is a set of instructions written in a well-defined query language using strict rules of composition. A formal query is assembled in a search engine user interface and submitted to the search engine. The search engine uses the formal query to find data the user has described in the formal query. The search engine returns the data to the search engine user interface so the user can view the data. If the user understands the query language and composition rules, a well-formed query is composed and the search is usually successful. When the search is not successful, it is often difficult for the user to discern what parts of the formal query need to be modified to achieve satisfactory results.
A user may have difficulty composing a formal query or discerning which parts of a formal query to modify because the query language and composition rules do not adequately represent how a user thinks about how to search for data of interest to the user. A user typically searches for data according to properties of the data that the user can recall. The properties of the data the user can recall may or may not be searchable, or may or may not be made available in the search engine user interface. For example, one user may remember a time span during which an e-mail was received while another user may remember a key phrase included in the subject line or body of the e-mail. If time span is one of the searchable properties employed by the search engine user interface, but key phrase is not one of the criteria, the user who remembers only the key phrase is not able to compose a query suitable for retrieving the e-mail message. Alternatively, if key phrases is one of the properties employed by the search engine user interface, but not time span, the user who remembers the key phrase can compose a suitable query, but not the user who only remembers the time span.
Often, searchable properties, such as the aforementioned exemplary searchable properties, may be employed by one search engine user interface but not by another search engine user interface. This limitation may require a user to use more than one search engine user interface to conduct a search and coordinate the results of searches. Using more than one search engine user interface is undesirable because of the additional time required and because users are required to learn the nuances of a plurality of search engine user interfaces.
Even if a user understands the query language and composition rules of a search engine user interface, a user may have difficulty discerning which parts of a formal query to modify because the search engine user interface does not respond quickly enough or because the results of the search do not match the user's expectations. For example, a user may generate a query containing the phrase “electric car” intending to find information on electric automobiles. If, after 15 seconds the search engine user interface has not returned any results, the user may stop the search, believing the search to be unsuccessful, and check the spelling of “electric car.” If the user decides “electric car” is spelled correctly, the user will restart the search. In this example, after 30 seconds, the search engine user interface may respond with data having to do with radio controlled toy cars, electric golf carts, and electric automobiles. It may be difficult for the user to decide how to modify the query to increase the specificity of the information returned and/or speed up the response. Another drawback to contemporary Web search engine user interfaces is that the returned information usually comprises Universal Resource Locators (URLs) and summaries of the files with little information to help the user understand how the files relate to the user's original request for information.